import { createRouter, createWebHistory } from "vue-router";
import NProgress from "nprogress";
import "nprogress/nprogress.css";

import { useUserStore } from "@/stores/user.js";
import staticRoutes from "./staticRoutes.js";
// import { initPermission } from "./permission.js";
import { menuApi } from "@/api/user.js"; // 假设你有一个接口获取后端返回的路由信息
// import LayoutContainer from "@/views/LayoutContainer.vue";
// import LayoutContainerThree from "@/views/LayoutContainerThree.vue";
const router = createRouter({
  mode: "hash",
  history: createWebHistory(import.meta.env.BASE_URL), //提供一个环境变量，，用来区分开发环境和生产环境
  routes: staticRoutes,

  // 滚动行为:控制滚动条的位置
  scrollBehavior() {
    return {
      left: 0,
      top: 0,
    };
  },
});

// 白名单
const whiteList = ["/login"];
router.beforeEach(async (to, from) => {
  NProgress.start();
  // 是否有token
  const userStore = useUserStore();
  const token = userStore.token;
  console.log(to.path, "to.path");
  userStore.setActiveMenu(to.path);

  console.log(router.getRoutes(), "router.getRoutes()"); // 打印所有路由，确认动态路由是否添加成功

  if (token && to.path == "/login") return from.path;
  if (!token && to.path !== "/login") return "/login";
  // if (!token) {
  //   if (whiteList.indexOf(to.path) !== -1) {
  //     return true;
  //   } else {
  //     // 否则重定向到登录页面
  //     return "/login";
  //   }
  // } else {
  //   if (to.path == "/login") {
  //     return from.path;
  //   } else {
  //     // 判断是否有动态路由，如果没有就去获取动态路由
  //     // const res = await menuApi("admin");
  //     // console.log(res.data, "走到这了");

  //     // const routes = res.data;
  //     // // router.addRoute(routes);

  //     // initPermission(routes);
  //     // 动态添加路由
  //     return true;
  //   }
  // }
  // 关闭进度条
  NProgress.done();
});
// // 后置守卫
router.afterEach((to, from) => {
  // 关闭进度条
  NProgress.done();
});
import { addDynamicRoutes } from "@/router/permission";

// const savedDynamicRouters = JSON.parse(localStorage.getItem("routes") || "[]");
// if (savedDynamicRouters) {
//   addDynamicRoutes(savedDynamicRouters); // 初始化动态路由
// }

export default router;
